﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace IGolovkine.ShoutCastRipper.Service.Contracts
{
    [ServiceContract(CallbackContract=typeof(AdminServiceCallBackContract), Namespace="http://www.ilia.co.uk")]
    public interface IAdminServiceContract
    {
        [OperationContract]
        void StopAll();
        
        [OperationContract]
        void StartAll();
        
        [OperationContract]
        void Start(string name);
        
        [OperationContract]
        void Stop(string name);
        
        [OperationContract]
        IEnumerable<string> GetStationRipperNames();
        
        [OperationContract]
        IEnumerable<StationRipperStatusDataContract> GetStatuses();

        [OperationContract]
        IEnumerable<StationRipperEventDataContract> GetEvents(DateTime since);

        [OperationContract]
        StationRipperStatusDataContract GetStatus(string name);

        [OperationContract]
        void RegisterForCallBacks();        

        [OperationContract]
        void StopAfterCurrentTitle(string name);

        [OperationContract]
        void SkipCurrentTitle(string name);
    }
}
